<?php
/**
 * Провайдер данных результата ответа от Sphinx
 *
 */
class SearchResultProvider implements Iterator
{
	/**
	 * Результат поискового запроса
	 *
	 * @var array
	 */
	private $_data;
	/**
	 * Текущая позиция
	 *
	 * @var int
	 */
	private $_position = 0;
	/**
	 * Где ищем если all то во всех индексах
	 *
	 * @var string
	 */
	private $_where;
	/**
	 * Конструктор
	 *
	 * @param array $result
	 * @param string $where
	 */
	public function __construct($result, $where)
	{
		$this->_data = $result;
		$this->_where = $where;
	}
	/**
	 * @see интерфейс Iterator
	 *
	 */
	public function current()
	{
		return new SearchResultItem($this->_data[$this->_position], $this->_position);
	}
	/**
	 * @see интерфейс Iterator
	 *
	 */
	public function key()
	{
		return $this->_position;
	}
	/**
	 * @see интерфейс Iterator
	 *
	 */
    public function next()
    {
    	++$this->_position;
    }
    /**
	 * @see интерфейс Iterator
	 *
	 */
	public function rewind()
	{
		$this->_position = 0;
	}
	/**
	 * @see интерфейс Iterator
	 *
	 */
	public function valid()
	{
		return isset($this->_data[$this->_position]);
	}
}